package blog.utils;

import java.text.ParseException;
import java.text.SimpleDateFormat;

public class StringUtil {
	private StringUtil() {
	}

//    判断字符串是否为空或null
	public static boolean IsNullOrEmpty(String str) {
		return str == null || "".equals(str);
	}

	/**
	 * 判断字符串是否为null 或者空串或者空格串
	 *
	 * @param strings 传入若干字符串
	 * @return遍历传入的字符串，若有空则返回true
	 */
	public static boolean isEmpty(String... strings) {
		for (String str : strings) {
			if (str == null || str.trim().length() == 0)
				return true;
		}
		return false;
	}

	public static boolean isEmpty(String str) {
		if (str == null || str.trim().length() == 0) {
			return true;
		}
		return false;
	}

	/**
	 * 判断是否为日期格式
	 * 
	 * @param str       日期字符串
	 * @param formatStr 格式
	 * @return
	 */
	public static boolean isValidDate(String str, String formatStr) {
		if(isEmpty(str) || isEmpty(formatStr)) {
			return false;
		}
		boolean convertSuccess = true;
		// 指定日期格式为四位年/两位月份/两位日期，注意yyyy/MM/dd区分大小写；
		SimpleDateFormat format = new SimpleDateFormat(formatStr);
		try {
			// 设置lenient为false. 否则SimpleDateFormat会比较宽松地验证日期，比如2007/02/29会被接受，并转换成2007/03/01
			format.setLenient(false);
			format.parse(str);
		} catch (ParseException e) {
			// e.printStackTrace();
			// 如果throw java.text.ParseException或者NullPointerException，就说明格式不对
			convertSuccess = false;
		}
		return convertSuccess;
	}

}
